package com.ingenieria.industrial.controller;

import com.ingenieria.industrial.dto.JCMail;
import com.ingenieria.industrial.dto.Usuario;
import com.ingenieria.industrial.service.implementacion.UsuarioService;
import java.util.Random;
import javax.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class MailController extends BaseController {

    @RequestMapping(params = "action=mail")
    public ModelAndView enviarMail(@ModelAttribute JCMail registro, HttpServletRequest request) {
        String mails = request.getParameter("mail");
        UsuarioService service = new UsuarioService();
        Usuario usuario = null;
        try {
            usuario = service.getByEmail(mails);
            if (!isVacio(usuario)) {
                Random rnd = new Random();
                String pass = Integer.toString((int) (rnd.nextDouble() * 600000 + 1));
                String passEncry = usuario.getClaveEncrypt(pass);
                if (service.updPassByEmail(passEncry, usuario.getDni())) {
                    registro.setFrom("unt.ing.industrial@gmail.com");
                    registro.setPassword("unt*industrial".toCharArray());
                    registro.setSubject("Recuperación de Contraseña");
                    registro.setMessage("Nueva contraseña: " + pass);
                    registro.setTo(mails);
                    registro.SEND();
                    ModelAndView mav = new ModelAndView("mensaje");
                    String msg = "Se envió la información a su correo";
                    mav.addObject("msg", msg);
                    return mav;
                }
            } else {
                ModelAndView mav = new ModelAndView("mensaje");
                String msg = "El correo ingresado no se encuentra registrado";
                mav.addObject("msg", msg);
                return mav;
            }
        } catch (Exception e) {
        }
        return null;
    }
}
